/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Datos;


import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

/**
 *
 * @author eajimen1
 */
public class ResultSetTable {

    ResultSet QueryResult;
    JTable table;
    DefaultTableModel model;

    public ResultSetTable(JTable table)
    {
        this.model = new DefaultTableModel();
        this.table = table;
        System.out.println("ResultSet Cargado!!!\n");
    }

    public ResultSet DataSource(ResultSet QueryResult)
    {
        this.QueryResult = QueryResult;
        return QueryResult;
    }

    public JTable DataBind()
    {
        try{
            //Obtener la metadata
            ResultSetMetaData rsmd = QueryResult.getMetaData();
            int columnsCount = rsmd.getColumnCount();
            System.out.println("Cantidad de Columnas Encontradas: "+ columnsCount +"\n");
            //Obtener los nombres de las columnas e insertarlos en el modelo
            for(int i=1; i<columnsCount+1; i++){
                String columnName = rsmd.getColumnName(i);
                model.addColumn(columnName);
                System.out.println("Columna Agregada: "+ columnName+"\n");
            }

            //Constructor de las filas
            while(QueryResult.next())
            {
                //Creamos el array de la fila y lo iniciamos con la cantidad de columnas
                Object[]fila = new Object[columnsCount];
                //Se rellena cada posicion del Array con los datos del Result Set
                for(int i = 0; i<columnsCount;i++){
                    fila[i] = QueryResult.getObject(i+1);
                     System.out.println("Dato agregado a fila: "+ fila[i].toString()+"\n");
                }
               //Se agrega la fila al modelo
                model.addRow(fila);
            }

        }catch(SQLException e)
        {
            System.out.println(e.getMessage()+"\n");
        }
        table.setModel(model);
        return table;

    }



}
